Network-accessible software services (referred to as “e-services” or “network services”) are increasingly used to deliver software functionality, and to provide software interfaces to remote resources. Examples of such services include web services and grid services.
Requests for e-services arriving from different client systems may be served at the same time. In a typical scenario, a client application makes requests for a service. While fulfilling such requests, the service consumes resources in its local environment. These resources may be distributed across the service provider's infrastructure. While consumption of these system resources by the services may be monitored as a matter of course, the usage of resources by individual users of those services is not monitored.
Existing systems, such as mainframes and UNIX servers, perform limited resource usage metering and accounting for processes. Resource usage metering is currently performed on a “per-process” basis. Since the same process (implementing a service) typically serves multiple clients, such information is not able to be used as a basis to charge clients for their use. Web services platforms, such as the WebSphere™ platform produced by the International Business Machines Corporation, maintain logs of service requests.
A need exists in view of these and other observations for an improved manner of actively monitoring the consumption of resources for each request across a distributed environment.